DML Exception Handling এবং Error Management

Computer Programming - এপেক্স (Apex) DML অপারেশনস (DML Operations) |
210
210

DML Exception Handling এবং Error Management হলো Apex কোডে ডেটা ম্যানিপুলেশন অপারেশনে (যেমন Insert, Update, Delete) কোনো ত্রুটি হলে তা সঠিকভাবে শনাক্ত এবং হ্যান্ডেল করার প্রক্রিয়া। Salesforce ডেটাবেজে DML অপারেশন চালানোর সময় যদি কোনো সমস্যা বা ত্রুটি ঘটে, তাহলে DML Exception তৈরি হয়। Exception Handling এর মাধ্যমে কোডে ত্রুটি সনাক্ত করে সঠিক পদক্ষেপ গ্রহণ করা যায়, যা অ্যাপ্লিকেশনের স্থায়িত্ব এবং পারফরম্যান্স উন্নত করে।


DML Exception Handling

DML অপারেশন চলাকালীন কোনো ত্রুটি ঘটলে Salesforce DmlException তৈরি করে। DML Exception হ্যান্ডল করার জন্য try-catch ব্লক ব্যবহার করা হয়। catch ব্লকের মাধ্যমে ত্রুটি সনাক্ত করে প্রয়োজনীয় পদক্ষেপ নেয়া যায়।

DML Exception Handling এর উদাহরণ

Account newAccount = new Account(Name = 'Test Account');

try {
    // DML অপারেশন, যদি কোনো ত্রুটি ঘটে তবে Exception তৈরি হবে
    insert newAccount;
    System.debug('Account inserted successfully');
} catch (DmlException e) {
    System.debug('Error occurred: ' + e.getMessage());
}
  • এখানে try ব্লকে insert DML অপারেশনটি সম্পন্ন করা হয়েছে এবং catch ব্লকে DmlException হ্যান্ডল করা হয়েছে।
  • ত্রুটি ঘটলে catch ব্লকে থাকা কোড এক্সিকিউট হবে এবং getMessage() মেথড ত্রুটির বার্তা প্রদর্শন করবে।

Bulk DML Exception Handling: Database Methods এর মাধ্যমে

বড় ডেটাসেট বা Bulk DML অপারেশনের সময় যখন অনেকগুলো রেকর্ডে অপারেশন চালানো হয়, তখন কিছু রেকর্ড সফল হতে পারে এবং কিছু ত্রুটির কারণে ব্যর্থ হতে পারে। Bulk DML Exception Handling করার জন্য Database.insert(), Database.update() এর মতো Database Methods ব্যবহার করা হয়। Database Methods-এ allOrNone প্যারামিটার false সেট করা হলে, ত্রুটি ঘটলেও অবশিষ্ট রেকর্ড সফলভাবে প্রক্রিয়া করা হয়।

উদাহরণ: Bulk DML Exception Handling

List<Account> accountList = new List<Account>{
    new Account(Name = 'Account 1'),
    new Account(Name = ''), // Empty name, will cause an error
    new Account(Name = 'Account 3')
};

// Database.insert() ব্যবহার করে Bulk DML অপারেশন
Database.SaveResult[] results = Database.insert(accountList, false);

for (Database.SaveResult result : results) {
    if (result.isSuccess()) {
        System.debug('Account Inserted Successfully: ' + result.getId());
    } else {
        System.debug('Error inserting Account: ' + result.getErrors()[0].getMessage());
    }
}
  • এখানে Database.insert(accountList, false) ব্যবহার করা হয়েছে, যেখানে allOrNone false সেট করা হয়েছে। ত্রুটি ঘটলেও অবশিষ্ট রেকর্ড সেভ হবে।
  • SaveResult ব্যবহার করে সফল ও ব্যর্থ রেকর্ডগুলো আলাদাভাবে ট্র্যাক করা হয়েছে।

DML Exception Handling এর সাধারণ Exception Properties

Exception Handling এর সময় কয়েকটি গুরুত্বপূর্ণ প্রোপার্টি রয়েছে, যা Exception সম্পর্কে বিস্তারিত তথ্য প্রদান করে:

  1. getMessage(): ত্রুটির বিস্তারিত বার্তা প্রদান করে।
  2. getNumDml(): DML অপারেশনের সংখ্যার উপর ভিত্তি করে Exception তৈরি হয়েছে কিনা।
  3. getDmlFields(i): ত্রুটির ক্ষেত্রে নির্দিষ্ট ফিল্ডের তথ্য প্রদান করে।
  4. getDmlId(i): যেই রেকর্ডের কারণে Exception ঘটেছে, তার আইডি প্রদান করে।

উদাহরণ:

try {
    Account newAccount = new Account(Name = '');
    insert newAccount;
} catch (DmlException e) {
    System.debug('Error: ' + e.getMessage());
    System.debug('Affected Fields: ' + e.getDmlFields(0));
    System.debug('DML Record ID: ' + e.getDmlId(0));
}

DML Error Management স্ট্র্যাটেজি

DML অপারেশনের সময় ত্রুটি হ্যান্ডল করার জন্য কিছু গুরুত্বপূর্ণ Error Management স্ট্র্যাটেজি নিচে উল্লেখ করা হলো:

Partial Success Handling: বড় ডেটাসেটের ক্ষেত্রে allOrNone প্যারামিটার false করে আংশিক সফলতা নিশ্চিত করা যায়। এতে কিছু রেকর্ড ব্যর্থ হলেও অবশিষ্ট রেকর্ড সফলভাবে প্রক্রিয়া হবে।

Error Logging: ত্রুটির লোগ রাখা একটি ভালো স্ট্র্যাটেজি, যাতে পরবর্তীতে তা বিশ্লেষণ করা যায়। ত্রুটি লোগ করে সঠিক সমাধান খুঁজে বের করা সহজ হয়।

User Notification: ত্রুটি হলে ব্যবহারকারীকে তাৎক্ষণিকভাবে অবহিত করা প্রয়োজন। কাস্টম ত্রুটি বার্তা ব্যবহারকারীদেরকে সঠিক তথ্য প্রদান করে।

Retry Mechanism: কিছু ক্ষেত্রে ত্রুটি ঘটলে DML অপারেশন পুনরায় চালনা করার প্রয়োজন হতে পারে। এমন অবস্থায় Retry Mechanism ব্যবহার করা যেতে পারে।

Custom Validation Messages: যখন কোনো ডেটা ভুল ইনপুট হয়, তখন কাস্টম ভ্যালিডেশন বার্তা ব্যবহারকারীদেরকে সমস্যার সঠিক কারণ বুঝতে সাহায্য করে।


Exception Handling এবং Error Management এর গুরুত্ব

  • কোডের স্থায়িত্ব বৃদ্ধি করে: Exception Handling সঠিকভাবে প্রয়োগ করলে কোড স্থায়িত্ব বৃদ্ধি পায় এবং ব্যবহারকারীদের জন্য অ্যাপ্লিকেশন আরও নির্ভরযোগ্য হয়।
  • ব্যবহারকারীদের অভিজ্ঞতা উন্নত করে: কাস্টম ত্রুটি বার্তা এবং লগ ব্যবহার করে ত্রুটি সম্পর্কে ব্যবহারকারীদের সঠিক তথ্য প্রদান করা যায়, যা তাদের অভিজ্ঞতা উন্নত করে।
  • ত্রুটি বিশ্লেষণে সহায়ক: Exception Handling এবং Error Logging এর মাধ্যমে ত্রুটির সঠিক কারণ নির্ধারণ করা এবং সেগুলোর সমাধান করা সহজ হয়।

সারসংক্ষেপ

  • DML Exception Handling Salesforce ডেটাবেজে ত্রুটি হ্যান্ডলিংয়ের জন্য try-catch ব্লক ব্যবহার করে।
  • Database Methods যেমন Database.insert() এবং Database.update() ব্যবহার করে আংশিক সফলতা অর্জন করা যায়।
  • Bulk DML Exception Handling বড় ডেটাসেটের ক্ষেত্রে কার্যকর এবং গভর্নর লিমিটের মধ্যে কার্যকরী ডেটা প্রসেসিং নিশ্চিত করে।
  • Error Management স্ট্র্যাটেজি ব্যবহার করে ত্রুটি সঠিকভাবে হ্যান্ডল করা এবং ব্যবহারকারীদের অভিজ্ঞতা উন্নত করা সম্ভব।

DML Exception Handling এবং সঠিক Error Management স্ট্র্যাটেজি প্রয়োগ করে Salesforce Apex কোডে ডেটা ম্যানিপুলেশন কার্যক্রম আরও নির্ভরযোগ্য ও কার্যকরী করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion